In transaction processing, a transaction manager attempts to perform processes on at least one resource. For example, a transaction may call for database updates or operations using one or more databases. A network host may provide for transaction resources utilized by a process, such as the database that requires updating and/or use. A transaction manager may receive a transaction and prepare one or more local resource managers to execute part or all of the transaction on required network hosts. Transaction processing must maintain atomicity, consistency, isolation, and durability properties (ACID properties). Atomicity requires that changes made during processing a transaction are atomic, either all the changes to a database during an operation or update occur or they all do not occur. This prevents database updates from partially occurring, which would affect the reliability and consistency of databases.
In transaction processing, a transaction may require the use of single phase commit (1PC) resources and two phase commit (2PC) resources. For example, 1PC resources may include a local resource manager that makes the decision to commit a transaction to a resource without the transaction manager. Alternatively, under 2PC, local resource managers are prepared by a transaction manager and polled to determine if the local resource managers can commit the transaction to their resources. In general, single phase commit resources cannot be combined with two-phase commit resources because failures during a voting phase may violate atomicity. Thus, single-phase resources are not processed within the scope of a 2PC transaction processing.